
const STORAGE_KEY = 'mall';

export default {
    /*
    * key: 缓存名称
    * val: 值
    * module_name: 对应的模块
    * 此方法也可以设置缓存也可以修改缓存，修改某个模块的局部字段传入模块名称和字段名称就行
    * */
    setItem(key,value,module_name){
        if( module_name ){
            let val = this.getItem(module_name);
            if( val ){
                val[key] = value;
                this.setItem(module_name,val)
            }else{
                return '没有此模块！';
            }
        }else{
            let item = this.getStorage();
            item[key] = value;
            window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(item));
        }
        return '设置成功！';
    },
    /*
    * 获取缓存
    * key:缓存名称
    * module_name:模块名称
    * */
    getItem(key,module_name){
        if( module_name ){
            let val = this.getItem(module_name);
            if(val) {
                return val[key]
            }else{
                return '模块不存在！';
            }
        }
        return this.getStorage()[key];
    },
    //获取所有的
    getStorage(){
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');
    },
    //清除缓存
    clear(key,module_name){
        let storage = this.getStorage();
        if( module_name ){
            delete storage[module_name][key];
        }else{
            delete storage[key];
        }
        window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(storage));
    }
}